package com.insideClass.TypeMessage.reflect;

import com.sun.xml.internal.ws.api.pipe.ServerTubeAssemblerContext;

import java.util.ArrayList;

/**
 * @author 13699
 */
public class Staff extends ArrayList<Position> {
    public void add(String title,Person person){
        add(new Position(title,person));
    }
    public void add(String... titles){
        for (String title:
             titles) {
            add(new Position(title));
        }
    }
    public Staff(String...titles){
        add(titles);
    }
    public boolean posistionAvailable(String title){
        for (Position position:
             this) {
            if(position.getTitle().equals(title)
                    &&position.getPerson()==Person.NULL){
                return true;
            }
        }
        return false;
    }
    public void fillPosition(String title,Person hire){
        for (Position position:
             this) {
            if(position.getTitle().equals(title)
                    &&position.getPerson()==Person.NULL){
                position.setPerson(hire);
                return;
            }
        }
        throw new RuntimeException("Position"+"title"+"not available");

    }

    public static void main(String[] args) {
        Staff staff=new Staff(
                "President","Cto","Marketing Manager"
                        ,"Product Manager","Project Lead","Software Engineer"
                ,"Software Engineer","Software Engineer","Software Engineer"
                ,"Test Engineer","Tchnical Writer"
        );
        staff.fillPosition("President",
                new Person("Me","Last","The Top,Lonely at"));
                staff.fillPosition("Project Lead",
                        new Person("Janet","Planner","The Burbs"));
        if(staff.posistionAvailable("   Software Engineer")){
            staff.fillPosition(
                    "Software Engineer"
                    ,new Person("Bob","Coder","Bright Light City"));
        }
        System.out.println(staff);
    }
}
